
#region Apache Notice
/*****************************************************************************
 * $Header: $
 * $Revision: 476843 $
 * $Date: 2006-11-19 09:07:45 -0700 (Sun, 19 Nov 2006) $
 * 
 * iBATIS.NET Data Mapper
 * Copyright (C) 2004 - Gilles Bayon
 *  
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 ********************************************************************************/
#endregion

#region Imports
using System.Collections;
#if NET_2_0
using System.Collections.Generic;
#endif
using IBatisNet.DataMapper.Commands;
using IBatisNet.DataMapper.Configuration.Statements;
#endregion

namespace IBatisNet.DataMapper.MappedStatements
{
	/// <summary>
	/// 
	/// </summary>
	public delegate void ExecuteEventHandler(object sender, ExecuteEventArgs e);

	/// <summary>
	/// Summary description for IMappedStatement.
	/// </summary>
	public interface IMappedStatement
	{

		#region Event

		/// <summary>
		/// Event launch on exceute query
		/// </summary>
		event ExecuteEventHandler Execute;

		#endregion 

		#region Properties


		///// <summary>
		///// The IPreparedCommand to use
		///// </summary>
		//IPreparedCommand PreparedCommand
		//{
		//	get;
		//}

		/// <summary>
		/// Name used to identify the MappedStatement amongst the others.
		/// This the name of the SQL statment by default.
		/// </summary>
		string Id
		{
			get;
		}

		/// <summary>
		/// The SQL statment used by this MappedStatement
		/// </summary>
		IStatement Statement
		{
			get;
		}

		
		/// <summary>
		/// The SqlMap used by this MappedStatement
		/// </summary>
        ISqlMapper SqlMap
		{
			get;
		}
		#endregion
         
    }
}
